/*
 *
 * 使用方式 import { isWscnEmail,validateURL,... } from 'utils/validate';
 * 例如：邮箱验证使用  return isWscnEmail(value)
 *
 */

/* 邮箱验证 */
export function isWscnEmail(str) {
  const reg = /^[a-z0-9](?:[-_.+]?[a-z0-9]+)*@wz\.com$/i;
  return reg.test(str.trim());
}

/* URL验证 */
export function validateURL(textval) {
  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
  return urlregex.test(textval);
}

/* 小写字母 */
export function validateLowerCase(str) {
  const reg = /^[a-z]+$/;
  return reg.test(str);
}

/* 大写字母 */
export function validateUpperCase(str) {
  const reg = /^[A-Z]+$/;
  return reg.test(str);
}

/* 大小写字母 */
export function validatAlphabets(str) {
  const reg = /^[A-Za-z]+$/;
  return reg.test(str);
}
/* json 字母排序转成字符串 */
export function sortByKey(obj, flag) {
  if (!obj) {
    return {};
  }
  const newObj = {};
  let sortKeys;
  // 对象递归去null，但是递归不会排序
  if (flag) {
    sortKeys = Object.keys(obj);
  } else {
    sortKeys = Object.keys(obj).sort((key1, key2) => (key1 > key2 ? 1 : -1));
  }
  sortKeys.forEach(v => {
    if (obj[v] != null) {
      newObj[v] = obj[v];
    }
    if (obj[v] && Object.prototype.toString.call(obj[v]) === '[object Object]') {
      newObj[v] = sortByKey(obj[v], true);
    } else if (obj[v] != null) {
      newObj[v] = obj[v];
    }
  });
  return newObj;
}
export function getTime(dateStr) {
  if (!dateStr) return ''
  const date = new Date(dateStr);

  const Month = date.getMonth() + 1;

  const Day = date.getDate();

  const Y = `${date.getFullYear()}-`;

  const M = Month < 10 ? `0${Month}-` : `${Month}-`;

  const D = Day + 1 < 10 ? `0${Day}` : Day;
  return Y + M + D;
}
/* eslint-disable */
export var validateReg = {
  imgMessageReg: /^[\da-zA-Z]{4,6}$/, // 图形验证码
  mobileNoReg: /^\d{11}$/, // 手机号码校验
  mobileNoOrPhoneReg: /^0\d{2,3}-?\d{7,8}$|^\d{11}$/, // 手机号码和电话号码校验
  mobileNoOrPhoneRegtwo: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, // 手机号码和电话号码校验
  mobileReg: /^1(3|4|5|6|7|8|9)\d{9}$/, // 手机号码规则校验
  messageReg: /^\d{4}$/, // 4位短信验证码校验
  messageQuickReg: /^\d{4,6}$/, // 6位短信验证码校验
  passwordReg: /^[\S]{6,18}$/, // 登录密码校验
  userNameReg: /^(?!\d*$)[\u4e00-\u9fa5a-zA-Z0-9]{3,15}$/, // 用户名校验--注册
  userNameLoginReg: /(^[\u4e00-\u9fa5a-zA-Z0-9]{3,15}$)|(^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$)/, // 用户名校验--登录
  price: /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/, // 普通价格校验
  priceW: /(^[1-9]\d*(\.\d{1,4})?$)|(^0(\.\d{1,4})?$)/, // 万元价格，保留4位小数
  bankCard: /^([1-9]{1})(\d{14,29})$/, // 银行卡号正则
  bankCardNew: /^\d*$/, // 银行卡号正则
  certNo: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X)$)/, // 身份证正则
  certNoTwo: /^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/, // 身份证正则
  integerNum: /(^[1-9]\d*$)|(^0$)/, // 正整数
  integerFloatNum: /^[0-9]+.?[0-9]*$/, // 正小数
  decimal: /^([01](\.0+)?|0\.[0-9]+)$/, // 小于等于1的小数
  isBlank: /\s*\S+?/, // 校验非空
  changePassword: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,18}$/, // 修改密码校验
  // changePasswordNew:/^(\w*(?=\w*\d)(?=\w*[A-Za-z])\w*){6,18}$/,
  changePasswordNew: /^[a-zA-Z][a-zA-Z0-9_]{5,17}$/

};
